package com.yifeng.service;

import com.yifeng.common.Result;
import com.yifeng.model.News;


public interface NewsService {

    /*
    负责人：未知

    功能：查询类型为"媒体报道"和"项目新闻"的新闻列表，用于前台特定栏目展示

    参数：无

    返回值：包含两类新闻的Result封装对象
    */
    Result getMediaAndProjectNews();

    /*
    负责人：未知

    功能：查询包含图片的新闻列表，用于前台图片新闻展示

    参数：无

    返回值：包含含图片新闻的Result封装对象
    */
    Result getNewsWithImages();

    /*
    负责人：未知

    功能：根据关键词搜索新闻，支持标题和内容的模糊匹配

    参数：keyword - 搜索关键词

    返回值：匹配的新闻列表Result封装对象
    */
    Result searchNews(String keyword);


    /*
    负责人：未知

    功能：分页查询新闻列表，用于前台新闻列表页展示

    参数：pageNum - 页码, pageSize - 每页条数

    返回值：分页后的新闻列表Result封装对象
    */
    Result getNewsListWithPagination(int pageNum, int pageSize);



    /*
    负责人：未知

    功能：根据新闻ID查询新闻详情，仅限已发布状态的新闻

    参数：newsId - 新闻唯一标识

    返回值：新闻详情Result封装对象
    */
    Result getNewsDetailById(int newsId);



    /*
    负责人：未知

    功能：分页获取所有新闻，用于后台新闻管理系统

    参数：pageNum - 页码, pageSize - 每页条数

    返回值：分页新闻列表Result封装对象
    */
    Result getAllNewsWithPagination(int pageNum, int pageSize);



    /*
    负责人：未知

    功能：按状态分页查询新闻，用于后台按状态筛选管理

    参数：status - 新闻状态, pageNum - 页码, pageSize - 每页条数

    返回值：筛选后的新闻列表Result封装对象
    */

    Result getNewsByStatusWithPagination(int status, int pageNum, int pageSize);


    /*
    负责人：未知

    功能：根据新闻ID获取单条新闻详情，用于后台新闻编辑

    参数：newsId - 新闻ID

    返回值：新闻详情Result封装对象
    */
    Result getNewsById(Integer newsId);



    /*
    负责人：未知

    功能：新增一条新闻，用于后台新闻发布

    参数：news - 包含新闻信息的News对象

    返回值：操作结果Result封装对象
    */
    Result createNews(News news);

    /*
    负责人：未知

    功能：更新一条新闻，用于后台新闻编辑保存

    参数：news - 包含更新后新闻信息的News对象

    返回值：操作结果Result封装对象
    */
    Result updateNews(News news);



    /*
    负责人：未知

    功能：删除指定新闻，实现后台新闻删除功能

    参数：newsId - 新闻ID

    返回值：操作结果Result封装对象
    */
    public Result deleteNewsById(Integer newsId);


    //不分页查找新闻
    public Result getAllNews();

    //根据状态查找新闻
    public Result getNewsByStatus(int status);
}